﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Tst.Models;
using Ext.Direct.Mvc;

namespace Tst.Controllers
{
    public class TipoErroController : Controller
    {
        private TipoErroRepository tipoErroRep;

        public TipoErroController()
        {
            this.tipoErroRep = new TipoErroRepository();
        }


        public ActionResult List()
        {
            return this.Direct(this.tipoErroRep.GetAll());
        }
        
        public ActionResult Create(TipoErro pTipoErro)
        {

            TipoErro tipoErro = this.tipoErroRep.GetByDescricao(pTipoErro.ds_descricao);

            if (tipoErro != null && tipoErro.cd_tipo_erro != pTipoErro.cd_tipo_erro)
            {
                return this.Direct(new
                {
                    success = false,
                    errors = new
                    {
                        ds_tipo_erro = "Tipo de erro já existente"
                    }
                });
            }

            if (pTipoErro.cd_tipo_erro == 0)
            {
                tipoErro = new TipoErro()
                {
                    ds_descricao = pTipoErro.ds_descricao
                };

                this.tipoErroRep.Insert(tipoErro);
            }
            else
            {
                tipoErro = this.tipoErroRep.GetById(pTipoErro.cd_tipo_erro);

                tipoErro.ds_descricao = pTipoErro.ds_descricao;

                this.tipoErroRep.Update(tipoErro);

            }

            this.tipoErroRep.Save();

            return this.Direct(new
            {
                success = true,
                cd_tipo_erro = tipoErro.cd_tipo_erro

            });


        }


        public ActionResult Delete(int cd_tipo_erro)
        {
            this.tipoErroRep.Delete(cd_tipo_erro);
            this.tipoErroRep.Save();

            return this.Direct(new { success = true });
        }

    }
}
